/*
 * vars.c
 *
 *  Created on: Apr 1, 2025
 *      Author: QkLia
 */

#include "main.h"
#include "mx22a.h"



/* Bool */

/* hr_running x */
bool get_var_hr_running(){
	return GET_FLAG(FLAG_BIT_hr_running);
}
void set_var_hr_running(bool value){
	SET_FLAG(FLAG_BIT_hr_running, value);
}

/* hr_stop_state */
bool get_var_hr_stop_state(){
	return !GET_FLAG(FLAG_BIT_hr_running);
}
void set_var_hr_stop_state(bool value){
	SET_FLAG(FLAG_BIT_hr_running, !value);
}

/* cd_running */
bool get_var_cd_running(){
	return GET_FLAG(FLAG_BIT_cd_running);
}
void set_var_cd_running(bool value){
	SET_FLAG(FLAG_BIT_cd_running, value);
}

/* blt_state x */
bool get_var_blt_state(){
	return GET_FLAG(FLAG_BIT_blt_state);
}
void set_var_blt_state(bool value){
	SET_FLAG(FLAG_BIT_blt_state, value);
}

/* blt_online_state */
bool get_var_blt_online_state(){
//	return GET_FLAG(FLAG_BIT_blt_online_state);
	return bt_get_current_info()->connect_flag;
}
void set_var_blt_online_state(bool value){
//	SET_FLAG(FLAG_BIT_blt_online_state, value);
}

/* blt_offline_state x */
bool get_var_blt_offline_state(){
//	return !GET_FLAG(FLAG_BIT_blt_online_state);
	return !bt_get_current_info()->connect_flag;
}
void set_var_blt_offline_state(bool value){
//	SET_FLAG(FLAG_BIT_blt_online_state, !value);
}

/* sw_stop_state */
bool get_var_sw_stop_state(){
    return GET_FLAG(FLAG_BIT_sw_stop_state);
}
void set_var_sw_stop_state(bool value){
    SET_FLAG(FLAG_BIT_sw_stop_state, value);
}

bool get_var_charge_state(){
	return HAL_GPIO_ReadPin(CHARG_GPIO_Port, CHARG_Pin);
}
void set_var_charge_state(bool value){

}


/* Int */

/* cd_value */
int32_t cd_value = 0;
int32_t get_var_cd_value(){
	return cd_value;
}
void set_var_cd_value(int32_t value){
	cd_value = value;
}

int32_t lightness_value = 10;
int32_t get_var_lightness_value(){
	return lightness_value;
}
void set_var_lightness_value(int32_t value){
	lightness_value = value;
}



/* String */

/* hour_min xx:xx */
char hour_min[6] = "00:00";
const char *get_var_time_hour_min(){
    return hour_min;
}
void set_var_time_hour_min(const char *value){
    snprintf(hour_min, sizeof(hour_min), "%s", value);
}

/* hour xx */
char hour[3] = "00";
const char *get_var_time_hour(){
    return hour;
}
void set_var_time_hour(const char *value){
    snprintf(hour, sizeof(hour), "%s", value);
}

/* min xx */
char min[3] = "00";
const char *get_var_time_min(){
    return min;
}
void set_var_time_min(const char *value){
    snprintf(min, sizeof(min), "%s", value);
}

/* year xxxx */
char year[5] = "2000";
const char *get_var_date_year(){
    return year;
}
void set_var_date_year(const char *value){
    snprintf(year, sizeof(year), "%s", value);
}

/* mon_day xx/_xx */
char mon_day[8] = "01 / 01";
const char *get_var_date_mon_day(){
    return mon_day;
}
void set_var_date_mon_day(const char *value){
    snprintf(mon_day, sizeof(mon_day), "%s", value);
}

/* week XX */
char week[7] = "周一";
const char *get_var_data_week(){
    return week;
}
void set_var_data_week(const char *value){
    snprintf(week, sizeof(week), "%s", value);
}

/* steps xxxxx */
char steps[6] = "-1";
const char *get_var_steps(){
    return steps;
}
void set_var_steps(const char *value){
    snprintf(steps, sizeof(steps), "%s", value);
}

/* heart_rate xxx */
char heart_rate[4] = "---";
const char *get_var_heart_rate(){
    return heart_rate;
}
void set_var_heart_rate(const char *value){
    snprintf(heart_rate, sizeof(heart_rate), "%s", value);
}

/* blood_oxygen xxx */
char blood_oxygen[4] = "---";
const char *get_var_blood_oxygen(){
    return blood_oxygen;
}
void set_var_blood_oxygen(const char *value){
    snprintf(blood_oxygen, sizeof(blood_oxygen), "%s", value);
}

/* cd_value_str */
char cd_value_str[13] = "00 : 00";
const char *get_var_cd_value_str(){
	return cd_value_str;
}
void set_var_cd_value_str(const char *value){
	snprintf(cd_value_str, sizeof(cd_value_str), "%s", value);
}

/* cd_btn_str */
char cd_btn_str[7] = "开始";
const char *get_var_cd_btn_str(){
	return cd_btn_str;
}
void set_var_cd_btn_str(const char *value){
	snprintf(cd_btn_str, sizeof(cd_btn_str), "%s", value);
}

/* record_str */
char record_str[128] = "";
const char *get_var_record_str(){
	return record_str;
}
void set_var_record_str(const char *value){
	snprintf(record_str, sizeof(record_str), "%s", value);
}

/* sw_btn_str */
char sw_btn_str[7] = "开始";
const char *get_var_sw_btn_str(){
    return sw_btn_str;
}
void set_var_sw_btn_str(const char *value){
    snprintf(sw_btn_str, sizeof(sw_btn_str), "%s", value);
}

/* sw_min_sec_str */
char sw_min_sec_str[13] = "00 : 00 .00";
const char *get_var_sw_min_sec_str(){
    return sw_min_sec_str;
}
void set_var_sw_min_sec_str(const char *value){
    snprintf(sw_min_sec_str, sizeof(sw_min_sec_str), "%s", value);
}

/* lightness_value_str */
char lightness_value_str[7] = "";
const char *get_var_lightness_value_str(){
	snprintf(lightness_value_str, sizeof(lightness_value_str), "%d%%", lightness_value);
    return lightness_value_str;
}
void set_var_lightness_value_str(const char *value){
    snprintf(lightness_value_str, sizeof(lightness_value_str), "%s", value);
}

/* hr_btn_str */
char hr_btn_str[10] = "测量中";
const char *get_var_hr_btn_str(){
	// 运行时显示 "measuring" 否则 "开始"
	return GET_FLAG(FLAG_BIT_hr_running) ? "测量中" : "开始";
}
void set_var_hr_btn_str(const char *value){
//	snprintf(hr_btn_str, sizeof(hr_btn_str), "%s", value);
}
